﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace QuadraticEquationSolver
{
    class QuadraticEquation
    {
        private double x1 = 0;
        private double x2 = 0;
        private double delta = 0;
        private float a, b, c;
        private string desc = "";
        private bool indicator;

        public QuadraticEquation()
        {
            a = 0;
            b = 0;
            c = 0;
            solve();
        }

        public QuadraticEquation(float a, float b, float c)
        {
            this.a = a;
            this.b = b;
            this.c = c;
            solve();
        }

        public void solve()
        {
            if (a == 0)
            {
                if (b == 0)
                {
                    if (c == 0)
                    {
                        desc = "Phương trình có vô số nghiệm";
                        indicator = false;
                    }
                    else
                    {
                        desc = "Phương trình vô nghiệm";
                        indicator = false;
                    }
                }
                else
                {
                    desc = "Phương trình có 1 nghiệm";
                    indicator = true;
                    x1 = x2 = -c / b;
                }
            }
            else
            {
                delta = (b * b) - 4 * a * c;

                if (delta < 0)
                {
                    desc = "Phương trình vô nghiệm";
                    indicator = false;
                }
                else
                {
                    if (delta > 0)
                    {
                        desc = "Phương trình có 2 nghiệm phân biệt";
                        indicator = true;
                        x1 = (-Math.Sqrt(delta) - b) / (2 * a);
                        x2 = (Math.Sqrt(delta) - b) / (2 * a);
                    }
                    else
                    {
                        desc = "Phương trình có nghiệm kép";
                        indicator = true;
                        x1 = x2 = -b / a;
                    }
                }
            }
        }

        public string result()
        {
            string res = desc;
            if (indicator)
            {
                if (x1 == x2)
                {
                    res = res + " x= " + x1;
                }
                else
                {
                    res = res + " x1= " + x1 + " và x2= " + x2;
                }
            }
            return res;
        }
    }
}
